<!--  -->
<template>
    <div id="PersonalData">
        <div class="PersonalData-top">个人资料</div>
        <div class="PersonalData-middum">
            <div class="PersonalData-middum-left">
                <el-form :model="form" label-width="120px">
                    <el-form-item label="用户名">
                        <el-input v-model="form.username"/>
                    </el-form-item>
                    <el-form-item
                            label="性别"
                    >
                        <el-select v-model="form.sex" placeholder="性别" clearable
                                   style="width: 100%">
                            <el-option label="男" value="男"/>
                            <el-option label="女" value="女"/>
                        </el-select>
                    </el-form-item>
                    <el-form-item label="出生日期">
                        <el-date-picker
                                v-model="form.birthday"
                                type="date"
                                placeholder="选择时间"
                                style="width: 100%"
                                value-format="YYYY-MM-DD"
                        />
                    </el-form-item>
                    <el-form-item label="邮箱">
                        <el-input v-model="form.email"/>
                    </el-form-item>
                    <el-form-item label="个人介绍">
                        <el-input v-model="form.introduction" type="textarea"/>
                    </el-form-item>
                    <!--          <el-form-item>-->
                    <!--            <el-button type="primary" @click="onSubmit">Create</el-button>-->
                    <!--          </el-form-item>-->
                </el-form>
            </div>
            <div class="PersonalData-middum-right"></div>
        </div>
        <div class="PersonalData-bottom">
            <el-button type="primary" @click="onSubmit">保存修改</el-button>
        </div>
    </div>
</template>

<script>
//这里可以导入其他文件（比如：组件，工具js，第三方插件js，json文件，图片文件等等）
//例如：import 《组件名称》 from ‘《组件路径》‘;
import {mapState, mapGetters, mapActions, mapMutations} from "vuex";
import {modifyPersonalData, personInfo} from '@/api/blog/user'
import {ElMessage} from 'element-plus'

export default {
    name: "PersonalData",
//import引入的组件需要注入到对象中才能使用
    components: {},
    data() {
//这里存放数据
        return {
            form: {},
        };
    },
    props: {},
//监听属性 类似于data概念
    computed: {
        ...mapState('user', ['currentUser', 'userId']),
    },
//监控data中的数据变化
    watch: {
        // currentUsername(newVal,oldVal){
        //   this.form.username = newVal
        // },
        // currentUser(){
        //   this.form.username = this.GET_CURRENTUSER()
        // },
        // userId(){
        //   this.form.userId = this.GET_CURRENTUSERID()
        // },
    },
//方法集合
    methods: {
        ...mapGetters('user', ['GET_CURRENTUSER', 'GET_CURRENTUSERID']),
        load() {
            this.form.username = sessionStorage.getItem('user') ? JSON.parse(sessionStorage.getItem('user')) : ''
            this.form.id = sessionStorage.getItem('userId') ? JSON.parse(sessionStorage.getItem('userId')) : ''
            personInfo(this.form.id).then((res)=>{
                this.form = {...res.data}
            })
        },
        onSubmit() {
            if (this.form.email) {
                let emailReg = /^[A-Za-z0-9._%-]+@([A-Za-z0-9-]+.)+[A-Za-z]{2,4}$/
                if (!emailReg.test(this.form.email)) {
                    ElMessage({
                        message: '邮箱格式错误',
                        type: 'warning',
                    })
                }
            }
            modifyPersonalData(this.form).then((res) => {
                ElMessage({
                    message: res.msg,
                    type: 'success',
                })

                this.load()
            })
        },
    },
//生命周期 - 创建完成（可以访问当前this实例）
    created() {
        this.load()
    },
//生命周期 - 挂载完成（可以访问DOM元素）
    mounted() {
        this.load()
    },
    beforeCreate() {
    }, //生命周期 - 创建之前
    beforeMount() {
    }, //生命周期 - 挂载之前
    beforeUpdate() {
    }, //生命周期 - 更新之前
    updated() {
    }, //生命周期 - 更新之后
    beforeDestroy() {
    }, //生命周期 - 销毁之前
    destroyed() {
    }, //生命周期 - 销毁完成
    activated() {
    }, //如果页面有keep-alive缓存功能，这个函数会触发
}
</script>
<style lang="less" scoped>
@import "../../../style/blog/PersonalData.less";
</style>

